#include "clientlogin.h"
#include "client_merchant.h"
#include "client_user_login_succcess_tool.h"

//char currentLoginUserName[128];

// 用户登录
bool client_login(int fd)
{
    printf("请输入用户名和密码\n");
    LOGIN lg;
    scanf("%s%s", lg.name, lg.pwd);

    MSG msg;
    msg.type = _login;
    // 把登录结构体的字节全部拷贝到消息结构体的数据数组中
    memcpy(msg.data, &lg, sizeof(lg));
    // 把消息发送给服务器
    send(fd, &msg, sizeof(msg), 0);
    // 接受从服务器返回的结果
    recv(fd, &msg, sizeof(msg), 0);
    if (msg.type == _yes)
    {
        printf("恭喜你登录成功！\n");

        strcpy(currentLoginUserName,lg.name);//把输入的用户名保存起来

        // 进入到登录成功的用户界面
        user_login_success(fd);
        return true;
    }
    else
    {
        printf("登录失败了!\n");
        return false;
    }
}

// 注册 普通用户 
bool client_regist(int fd)
{
    printf("请输入用户名和密码和电话\n");
    REGIST rg;
    scanf("%s%s%s", rg.name, rg.pwd,rg.find);
    rg.flag = 0;//普通用户
    rg.value = 0;//初始化余额为0
    MSG msg;
    msg.type = _regist;
    // 把登录结构体的字节全部拷贝到消息结构体的数据数组中
    memcpy(msg.data, &rg, sizeof(rg));
    // 把消息发送给服务器
    send(fd, &msg, sizeof(msg), 0);
    // 接受从服务器返回的结果
    int bytes_received = recv(fd, &msg, sizeof(msg), 0);
    if(bytes_received <0){
         printf("与服务器通信失败\n");
    exit(-1);
    }else if (bytes_received == 0) {
    // 如果recv返回0，表示对方已经关闭了连接
    printf("服务器已断开连接\n");
    exit(-1);
    }

    if (msg.type == _yes)
    {
        printf("恭喜你注册成功！请登录\n");
        // 进入到登录用户界面
        // mainMenu();
        return true;
    }
    else
    {
        printf("%s\n",msg.data);
        printf("注册失败了!\n");
        return false;
    }
}

// 商家 登录
void menchant_login(int fd){
    printf("请输入用户名和密码\n");
    LOGIN lg;
    scanf("%s%s", lg.name, lg.pwd);

    MSG msg;
    msg.type = _login_merchant;
    // 把登录结构体的字节全部拷贝到消息结构体的数据数组中
    memcpy(msg.data, &lg, sizeof(lg));
    // 把消息发送给服务器
    send(fd, &msg, sizeof(msg), 0);
    // 接受从服务器返回的结果
    recv(fd, &msg, sizeof(msg), 0);
    if (msg.type == _yes)
    {
        printf("恭喜你登录成功！\n");

         strcpy(currentLoginUserName,lg.name);//把输入的商家名保存起来

        // 进入到登录成功的商家界面
        merchant_menu(fd);
        //return true;
    }
    else
    {
        printf("登录失败了!\n");
        //return false;
    }
}

//商家注册
void   menchant_register( int fd){
    printf("请输入商家店铺名和密码和电话\n");
    REGIST rg;
    scanf("%s%s%s", rg.name, rg.pwd,rg.find);
    rg.flag = 0;//普通商家
    rg.value = 0;//初始化余额为0
    MSG msg;
    msg.type = _regist_merchant;
    // 把登录结构体的字节全部拷贝到消息结构体的数据数组中
    memcpy(msg.data, &rg, sizeof(rg));
    // 把消息发送给服务器
    send(fd, &msg, sizeof(msg), 0);
    // 接受从服务器返回的结果
    int bytes_received = recv(fd, &msg, sizeof(msg), 0);
    if(bytes_received <0){
         printf("与服务器通信失败\n");
    exit(-1);
    }else if (bytes_received == 0) {
    // 如果recv返回0，表示对方已经关闭了连接
    printf("服务器已断开连接\n");
    exit(-1);
    }

    if (msg.type == _yes)
    {
        printf("恭喜你注册成功！请登录\n");
        // 进入到登录商家界面
        // mainMenu();
        //return true;
    }
    else
    {
        printf("%s\n",msg.data);
        printf("注册失败了!\n");
        //return false;
    }
}

// 密码找回
bool client_find_password(int fd)
{
    MSG msg;
    printf("请输入用户名 和 电话 \n");
    REGIST rg;
    scanf("%s%s", rg.name,rg.find);
    printf("请输入 你的账号类型 （1.用户/2.商家）\n");
    char change;
    scanf(" %c",&change);
    while (getchar() != '\n');
    if(change == '1'){
        msg.type = _pwdfind;
    }else if(change == '2'){
        msg.type = _pwdfind_merchant;
    }else{
        printf("请按照指示输入\n");
        return false;
    }
    
    // 把登录结构体的字节全部拷贝到消息结构体的数据数组中
    memcpy(msg.data, &rg, sizeof(rg));
    // 把消息发送给服务器
    send(fd, &msg, sizeof(msg), 0);
    // 接受从服务器返回的结果
    recv(fd, &msg, sizeof(msg), 0);
    if(msg.type == _yes){
        printf("密码已找回 %s\n",msg.data);
        return true;
    }
    else{
        printf("没有这个账号和手机\n");
        return false;
    }

   
}


/* // 用户 登录成功界面
void user_login_success(int fd){
    printf("-------------登录成功 欢迎使用-----------\n");
    printf("--订单管理       信息管理          账户管理-\n");
    printf(" 1.查看商品     7.加入商家活动群   13.修改密码\n");
    printf(" 2.购买商品     8.咨询商家        14.充值\n");
    printf(" 3.查看订单     9.查看其他用户评价     15.修改账号\n");
    printf(" 4.取消订单     10.删除评价           16.修改绑定手机号\n");
    printf(" 5.评价商品     11.找客服反馈       17.注销账号\n");
    printf(" 6.退货                      18.退出\n");
    while (true) {
        int choice;
        printf("\n请选择你要进行的操作（输入数字）：");
        scanf("%d", &choice);
        while (getchar() != '\n'); // 清除缓冲区

        switch (choice) {
            case 1: //1.查看商品
                view_products(fd);
                break;
            case 2://2.购买商品 
                buy_product(fd);
                break;
            case 3://3.查看订单
                view_orders(fd);
                break;
            case 4://取消订单
                cancel_order(fd);
                break;
            case 5://评价商品
                review_product(fd);
                break;
            case 6://退货 
                return_goods(fd);
                break;
            case 7://加入商家活动群
                join_merchant_group(fd);
                break;
            case 8://咨询商家
                consult_merchant(fd);
                break;
            case 9://查看个人信息
                view_personal_info(fd);
                break;
            case 10://编辑个人信息
                edit_personal_info(fd);
                break;
            case 11://查看余额
                check_balance(fd);
                break;
            case 12://提现 
                withdraw_money(fd);
                break;
            case 13://修改密码
                change_password(fd);
                break;
            case 14://充值
                recharge_account(fd);
                break;
            case 15: // 退出登录
                printf("感谢使用，再见！\n");
                return;
            default:
                printf("无效的选择，请重新选择。\n");
        }
    }
}
 */

/* // 商家登录成功界面
void merchant_login_success(int fd){

} */










